In multi-hop wireless networks, nodes relay each other's data from node to node (i.e. a hop) until reaching a destination. Data packets can be lost due to various factors, including decoding errors due to noise and random channel fading, buffer overflows, node failures, uncorrectable errors, timeouts, reaching a maximum number of retransmissions, routing problems, and the like. While packet-based forward error correction (FEC), where redundant information is added to each packet in order to correct some bit error patterns, and hop-wise automatic repeat request (ARQ) methods can be effective for dealing with noise and random channel fluctuations, these methods often do not prevent data packet losses due to buffer overflows and/or complete node failure. Additionally, end-to-end ARQ methods can incur significant delays and overhead, and may not be practical for a number of networking applications.